home *** CD-ROM | disk | FTP | other *** search
/ SuperHack / SuperHack CD.bin / CODING / DELPHI / AUDIO.ZIP / MSACM32.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1996-09-03  |  3.1 KB  |  109 lines

  1. unit msacm32;
  2.  
  3. interface
  4.  
  5. Uses mmsystem, windows;
  6.  
  7. Const
  8.   ACMFORMATDETAILS_FORMAT_CHARS   = 128;
  9.   WAVE_FORMAT_GSM610     = $0031;
  10.   ACM_FORMATENUMF_CONVERT          = $00100000;
  11.   ACM_FORMATENUMF_WFORMATTAG       = $00010000;
  12.   ACM_FORMATENUMF_NCHANNELS        = $00020000;
  13.   ACM_FORMATENUMF_NSAMPLESPERSEC   = $00040000;
  14.   ACM_FORMATENUMF_WBITSPERSAMPLE   = $00080000;
  15.   ACM_FORMATENUMF_SUGGEST          = $00200000;
  16.   ACM_FORMATENUMF_HARDWARE         = $00400000;
  17.   ACM_FORMATENUMF_INPUT            = $00800000;
  18.   ACM_FORMATENUMF_OUTPUT           = $01000000;
  19. Type
  20.  
  21.  
  22. HACMDRIVERID = THANDLE;
  23. HACMDRIVER = THANDLE;
  24.  
  25. PACMFORMATDETAILSA = ^TACMFORMATDETAILSA;
  26. TACMFORMATDETAILSA = record
  27.     cbStruct : DWORD;
  28.     dwFormatIndex : DWORD;
  29.     dwFormatTag : DWORD;
  30.     fdwSupport : DWORD;
  31.     pwfx : PWAVEFORMATEX;
  32.     cbwfx : DWORD;
  33.     szFormat : array[0..ACMFORMATDETAILS_FORMAT_CHARS] of char;
  34. end;
  35.  
  36. TTRUESPEECHWAVEFORMAT = record
  37.         wfx : TWAVEFORMATEX    ;
  38.         wRevision : WORD;
  39.         nSamplesPerBlock : WORD;
  40.         abReserved : array[0..28] of BYTE;
  41. end;
  42.  
  43. PACMFORMATENUMCBA = ^TACMFORMATENUMCBA;
  44. TACMFORMATENUMCBA = function(
  45.     hadid : THANDLE;
  46.     pafd : PACMFORMATDETAILSA;
  47.     dwInstance,
  48.     fdwSupport : DWORD
  49. ) : BOOL stdcall;
  50. //  TFNDriverProc = function(dwDriverId: DWORD; hdrvr: HDRVR;
  51. //    msg: UINT; lparam1, lparam2: LPARAM): Longint stdcall;
  52.  
  53. //function acmFormatEnumCallback(hadid : THANDLE;pafd : PACMFORMATDETAILSA; dwInstance, fdwSupport : DWORD ):BOOL; stdcall;
  54. function acmFormatEnumA
  55. (
  56.     had : THANDLE;
  57.     pafd : PACMFORMATDETAILSA;
  58.     fnCallback : TACMFORMATENUMCBA;
  59.     dwInstance : DWORD;
  60.     fdwEnum : DWORD
  61. ) : MMRESULT; stdcall;
  62.  
  63. Const
  64.    ACM_METRIC_COUNT_DRIVERS            = 1;
  65.    ACM_METRIC_COUNT_CODECS             = 2;
  66.    ACM_METRIC_COUNT_CONVERTERS         = 3;
  67.    ACM_METRIC_COUNT_FILTERS            = 4;
  68.    ACM_METRIC_COUNT_DISABLED           = 5;
  69.    ACM_METRIC_COUNT_HARDWARE           = 6;
  70.    ACM_METRIC_COUNT_LOCAL_DRIVERS      = 20;
  71.    ACM_METRIC_COUNT_LOCAL_CODECS       = 21;
  72.    ACM_METRIC_COUNT_LOCAL_CONVERTERS   = 22;
  73.    ACM_METRIC_COUNT_LOCAL_FILTERS      = 23;
  74.    ACM_METRIC_COUNT_LOCAL_DISABLED     = 24;
  75.    ACM_METRIC_HARDWARE_WAVE_INPUT      = 30;
  76.    ACM_METRIC_HARDWARE_WAVE_OUTPUT     = 31;
  77.    ACM_METRIC_MAX_SIZE_FORMAT          = 50;
  78.    ACM_METRIC_MAX_SIZE_FILTER          = 51;
  79.    ACM_METRIC_DRIVER_SUPPORT           = 100;
  80.    ACM_METRIC_DRIVER_PRIORITY          = 101;
  81.  
  82.  
  83. function acmMetrics(hao : THandle; uMetric : UINT; pMetric : Pointer) : MMRESULT ; stdcall;
  84.  
  85. Const
  86.    ACM_FORMATDETAILSF_INDEX        = $00000000;
  87.    ACM_FORMATDETAILSF_FORMAT       = $00000001;
  88.    ACM_FORMATDETAILSF_QUERYMASK    = $0000000F;
  89.  
  90.  
  91. function acmFormatDetailsA(had : THandle;pafd : PACMFORMATDETAILSA;
  92.     fdwDetails : DWORD ) : MMRESULT ; stdcall;
  93.  
  94. implementation
  95.  
  96. Const
  97.   MSACM = 'msacm32.dll';
  98.   
  99. function acmFormatEnumA;
  100.  external MSACM  name 'acmFormatEnumA';
  101.  
  102. function acmMetrics;
  103.  external MSACM  name 'acmMetrics';
  104.  
  105. function acmFormatDetailsA;
  106.  external MSACM  name 'acmFormatDetailsA';
  107.  
  108. end.
  109.